package com.touni.designpattern.decoratorpattern;

import com.touni.designpattern.decoratorpattern.inter.Circle;
import com.touni.designpattern.decoratorpattern.inter.Rectangle;

/**
 * @ClassName : DecoratorDemo
 * @Description :装饰器模式（Decorator Pattern）允许向一个现有的对象添加新的功能，同时又不改变其结构。
 * 这种类型的设计模式属于结构型模式，它是作为现有的类的一个包装。
 *
 * 动态地给一个对象添加一些额外的职责。就增加功能来说，装饰器模式相比生成子类更为灵活。
 * @Author : lwq
 * @Date: 2020-11-12 11:15
 */
public class DecoratorDemo {

    public static void main(String[] args) {
        RedShapeDecorator circle = new RedShapeDecorator(new Circle());
        circle.draw();
        System.out.println("======================");
        RedShapeDecorator rectangle = new RedShapeDecorator(new Rectangle());
        rectangle.draw();
    }
}
